package cn.smile.excel.writer;

import cn.smile.exception.write.WriteDataNullException;
import java.util.ArrayList;

/**
 * 统一定义写入数据的行为
 */
public interface WriteExcel {

    /**
     * 添加Excel头部标题
     *
     * @param title 标题
     * @throws WriteDataNullException
     */
    void addTitle(String[] title) throws WriteDataNullException;

    /**
     * 所有的写入数据函数都基于该函数
     *
     * @param data 数据
     * @throws WriteDataNullException
     */
    void addData(String[] data) throws WriteDataNullException;

    /**
     * 同时写入标题和单多条数据
     *
     * @param titleAndData 第0个元素为标题，其它均为数据
     * @throws WriteDataNullException
     */
    void addData(ArrayList<String[]> titleAndData) throws WriteDataNullException;

    /**
     * 写数据
     */
    void write();

}
